#include<string>
#include<iostream>
#include<vector>
using namespace std;
string add(string s, string t)
{
    string ret;
    int i = s.size() - 1; int j = t.size() - 1, tmp = 0;
    while (i >=0|| j>=0 || tmp)
    {
        if (i >= 0) tmp += s[i--] - '0';
        if (j >= 0)  tmp += t[j--] - '0';
        ret += tmp % 10 + '0';
        tmp /= 10;
    }
    reverse(ret.begin(), ret.end());
    return ret;
}
//string solve(string s, string t) 
//{
//   
//    int tmp = 0,k =0,count = 0;
//
//    vector<string>v;
//    v.resize(100);
//    
//    for (int i = s.size() - 1; i >= 0; i--) 
//    {
//        tmp = 0;
//        for (int j = t.size() - 1; j >= 0; j--) 
//        {
//             tmp = (s[i]-'0') * (t[j] - '0');
//            v[k] += tmp + '0';
//            tmp /= 10;
//        }
//        count = k;
//        reverse(v[k].begin(),v[k].end());
//        while (count) 
//        {
//            v[k].push_back('0');
//            count--;
//        }
//        k++;
//    }
//    for (int i = 0; i < k -1; i++) 
//    {
//        v[i+1] = add(v[i], v[i + 1]);
//    }
//    return v[k-1];
//
//}
string solve(string s, string t) 
{
    vector<int> tmp;
    string ret;
    int n = s.size(), m = t.size();
    tmp.resize(m + n -1);

    reverse(s.begin(), s.end()); 
    reverse(t.begin(), t.end());
     for (int i = 0; i <n ; i++) 
    {
        for (int j = 0; j <m; j++) 
        {
            tmp[i + j] += (s[i] - '0') * (t[j] - '0');

        }
    }
    int c = 0;
    for (int x : tmp) 
    {
        c+=x;
        ret +=c % 10 + '0';
        c /= 10;
    }
    if (c != 0) 
    {
        ret += c % 10 + '0';
        c /= 10;
    }
    while (ret.size() > 1 && ret.back() == '0')       ret.pop_back();
    reverse(ret.begin(), ret.end());
    return ret;
}


int main() 
{
    string s, t;
    string ret;
    while (true) 
    {
        cout << "mul function,please put two numbers:"<<endl;
        cin >> s >> t;
        ret = solve(s, t);
        cout <<"ret:" << ret << endl;
    }
  

    return 0;
}